package com.wind.taobao.api.trade.item.convert
{
	import com.wind.taobao.api.trade.item.model.PostageMode;
	import com.wind.taobao.core.util.TaobaoConstants;
	
	import mx.collections.ArrayCollection;


	/**
	 * PostageMode转换器
	 * @author fxy
	 *
	 */
	public class PostageModeConvert
	{
		/**
		 * 转换PostageMode集合
		 */
		public static function convertPostageModes(value:Object, type:String="json"):ArrayCollection
		{
			var postageModes:ArrayCollection=new ArrayCollection();
			if (value != null)
			{
				if (type == TaobaoConstants.JSON)
				{
					if ((value as Array).length > 0)
					{
						for (var i:uint=0; i < (value as Array).length; i++)
						{
							postageModes.addItem(convertPostageMode((value as Array)[i]));
						}
					}
				}
				else
				{
					//TODO
				}
			}
			return postageModes;
		}

		/**
		 * 转换PostageMode
		 */
		public static function convertPostageMode(value:Object, type:String="json"):PostageMode
		{
			var postageMode:PostageMode=new PostageMode();
			if (value == null)
				return postageMode;
			if (type == TaobaoConstants.XML)
			{
				postageMode=convertXMLToPostageMode(XML(value), postageMode);
			}
			else
			{
				postageMode=convertJSONToPostageMode(value, postageMode);
			}
			return postageMode;
		}

		/**
		 * JSON转换为PostageMode
		 */
		private static function convertJSONToPostageMode(json:Object, postageMode:PostageMode):PostageMode
		{
			if (json.hasOwnProperty(TaobaoConstants.POSTAGE_ID))
			{
				postageMode.postage_id=json[TaobaoConstants.POSTAGE_ID];
			}
			if (json.hasOwnProperty(TaobaoConstants.POSTAGE_MODE_ID))
			{
				postageMode.postage_mode_id=json[TaobaoConstants.POSTAGE_MODE_ID];
			}
			if (json.hasOwnProperty(TaobaoConstants.POSTAGE_MODE_TYPE))
			{
				postageMode.postage_mode_type=json[TaobaoConstants.POSTAGE_MODE_TYPE];
			}
			if (json.hasOwnProperty(TaobaoConstants.DEST))
			{
				postageMode.dest=json[TaobaoConstants.DEST];
			}
			if (json.hasOwnProperty(TaobaoConstants.PRICE))
			{
				postageMode.price=json[TaobaoConstants.PRICE];
			}
			if (json.hasOwnProperty(TaobaoConstants.INCREASE))
			{
				postageMode.increase=json[TaobaoConstants.INCREASE];
			}
			return postageMode;
		}

		/**
		 * XML转换为PostageMode
		 */
		private static function convertXMLToPostageMode(value:XML, postageMode:PostageMode):PostageMode
		{
			return postageMode;
		}

	}
}